from multiprocessing import Queue

if __name__ == '__main__':
    q = Queue(3)  # 最多接受3条消息
    print('队列是否为空:', q.empty())
    print('队列是否为满:', q.full())
    # 添加消息
    q.put('hello')
    q.put('world')
    print('队列是否为空:', q.empty())
    print('队列是否为满:', q.full())
    q.put('python')
    print('队列是否为满:', q.full())
    print('队列消息个数:', q.qsize())
    # 队列中满了 block默认为True 会一直等待 队列有空位置才会放入
    # q.put('duiduo', block=True, timeout=2)  # 等待2s 还是满则报错 queue.Full
    print('---------------------')
    # 出队
    print(q.get())
    print('队列消息个数:', q.qsize())
    q.put_nowait('html')  # 入队 相当于 -> block=False 如果满直接报错
    print('队列消息个数:', q.qsize())
    # 遍历获取消息
    if not q.empty():
        for i in range(q.qsize()):
            print(q.get_nowait())


